Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота №5 Програмування, ч3

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
СІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Програмування алгоритмів цифрової обробки сигналів та зображень

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Звіт з лабораторної роботи № 5 з дисципліни: “Структури даних та алгоритми» На тему: “ Структура даних ЧЕРГА” Варіант 4 1. МЕТА РОБОТИ Вивчення фундаментальної абстрактної структури даних стек. Набуття практичних навичок побудови стека, дослідження динаміки його вмісту та використання стеків для розв'язання прикладних задач. 2. ЗАВДАННЯ 2.1 Постановка задачі Змоделюйте чергу (або дек) згідно з завданням. Перепишіть основні операції для роботи з чергою (деком), і продемонструйте їх застосування для операцій додавання і вилучення елементів в чергу (дек). Для цього задайте послідовність з N цілих чисел. Всі додатні числа послідовно заносяться в чергу (дек), кожне від’ємне число вилучає з черги (деку) один елемент. 4. Змоделюйте чергу, в якій реалізований такий механізм вилучення елемента з черги: початок черги завжди знаходиться в першому елементі масиву; при вилученні одного елемента з черги, всі решта елементів пересуваються на одну позицію ближче до початку масиву. 2.2 Алгоритм розв’язання задачі 2.2.1 Створюю новий проект C++ в середовищі розробки Visual Studio 2017 2.2.2 Моделюю стек на базі статичного масиву згідно з завданням, переписуючи основні операції роботи зі стеком: void pop(); void push(const Item& entry); void imp_pop(); // видаляє елемент та зміщує всі інші на позицію вниз // КОНСТАНТНІ ФУНКЦІЇ-ЧЛЕНИ bool empty() const { return (count == 0); } Item front() const; // перший елемент Item rear() const; // останній елемент void printQueue(); // вивід черги Item peek(int n) const; // доступ по індексу int getfirst() { return first; } // індекс першого елемента int getlast() { return last; } // індекс останнього елемента size_type size() const { return count; } // кількість елементів2.2.3 Виконую індивідуальне завдання згідно з варіантом; 2.2.4 Закінчую створення програми та перевіряю правильність її виконання. 2.3 Результати виконання програми / Рис 2.3 Результат виконання програми ВИСНОВКИ Під час виконання лабораторної роботи я набув практичних навичок побудови черги, дослідив динаміку його вмісту та використання черг для розв'язання прикладних задач. ДОДАТКИ Файл nQueue.h #pragma once #ifndef MAIN_SAVITCH_STACK1_H #define MAIN_SAVITCH_STACK1_H #include <cstdlib> // Надає тип size_t. #include<iomanip> namespace main_savitch_7A { template <class Item> class nQueue { public: // ОПЕРАТОРИ ПЕРЕІМЕНОВАННЯ ТИПІВ ТА КОНСТАНТНІ ЧЛЕНИ typedef size_t size_type; typedef Item value_type; static const size_type CAPACITY = 30; // КОНСТРУКТОР nQueue(); // МОДИФІКУЮЧІ ФУНКЦІЇ-ЧЛЕНИ void pop(); void push(const Item& entry); void imp_pop(); // видаляє елемент та зміщує всі інші на позицію вниз // КОНСТАНТНІ ФУНКЦІЇ-ЧЛЕНИ bool empty() const { return (count == 0); } Item front() const; // перший елемент Item rear() const; // останній елемент void printQueue(); // вивід черги Item peek(int n) const; // доступ по індексу int getfirst() { return first; } // індекс першого елемента int getlast() { return last; } // індекс останнього елемента size_type size() const { return count; } // кількість елементів private: Item data[CAPACITY]; size_type first; size_type last; size_type count; // ДОПОМІЖНІ ФУНКЦІЇ-ЧЛЕНИ size_type next_index(size_type i) const { return (i + 1) % CAPACITY; } }; } #endif Файл nQueue.cpp #include "stdafx.h" #include "nQueue.h" #include <cassert> namespace main_savitch_7A { template <class Item> const typename nQueue<Item>::size_type nQueue<Item>::CAPACITY; template <class Item> nQueue<Item>::nQueue() { count = 0; first = 0; last = CAPACITY-1; } template <class Item> Item nQueue<Item>::front() const { assert(!empty()); return data[first]; } template <class Item> Item nQueue<Item>::rear(...
Антиботан аватар за замовчуванням

28.05.2019 17:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини